// 添加响应拦截器
// axios.interceptors.response.use(函数1, 函数2);
// 函数1，处理的是成功状态（状态码是2xx, 300）的响应
// 函数2，处理的失败状态（响应状态码是4xx, 5xx）的响应
axios.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    // console.log(response);
    let { status, message } = response.data;
    if (status === 1) layer.msg(message);
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    // console.log(error.response);
    let { status, message } = error.response.data;
    layer.msg(message)
    return Promise.reject(error);
  }
);

// -------------------------- 切换两个盒子 ------------------------------
$('.login a').on('click', function () {
  // 让注册的盒子显示
  $('.register').show();
  // $('.register').show().prev().hide();
})

$('.register a').on('click', function () {
  $('.register').hide();
})

// --------------------------  完成登录功能  ------------------------------
// 点击登录（提交表单） - 阻止默认行为 - 获取输入框的值 - Ajax提交
$('.login form').on('submit', function (e) {
  e.preventDefault();
  let data = $(this).serialize();
  // console.log(data); // username=xxx&password=yyy
  axios.post('http://www.itcbc.com:8080/api/login', data).then(res => {
    // console.log(res);
    let { status, message, token } = res.data;
    if (status === 0) {
      // 保存token到本地存储
      localStorage.setItem('token', token);
      // 弹出关闭后，做的事情
      layer.msg(message, { time: 1500 }, () => {
        // 跳转到index页面（JS的跳转，不看你的js文件在哪里，看使用该js文件的html在哪里）
        location.href = './index.html';
      });
    }
  });
})

//------------------------注册----------------------
$('.register from').on('submit', function (e) {
  e.preventDefault();
  let data = $(this).serialize();
  console.log(data);
  axios.post('http://www.itcbc.com:8080/api/reguser', data).then(res => {
    alert(res.data.message)
    if (res.data.message === 0) {
      $('.register.from')[0].reset();
      $('.register').hide();
    }
  })
})

// -------------------------- 表单验证 ------------------------------
// 自定义验证规则
// 使用layui的内置模块，使用之前，必须先加载模块，
// 加载语法  let xxx = layui.模块名;
let form = layui.form;
// console.log(form);
form.verify({
  // 键（验证规则）: 值（怎样验证）
  // len: ['正则表达式', '验证不通过时的提示'],
  len: [/^\S{6,12}$/, '长度6~12位且不能有空格'], // ^$一起用表示匹配整个字符串  \S表示非空白  {6,12} 不是 {6, 12}

  // 函数形式，函数的形参表示 使用该验证规则的输入框的值 。
  // 案例中，确认密码使用了这个验证规则，形参val表示我们输入的确认密码
  // same: function (val) { return '验证不通过时的提示' }
  same: function (val) {
    // 获取密码
    let pwd = $('.pwd').val();
    // 判断
    if (pwd !== val) return '两次密码不一致';
  }
});